package modelo;

import java.util.List;
import java.util.ArrayList;
import java.sql.ResultSet;

public class ProveedorDao 
{
	public boolean registrarProveedor(Proveedor proveedor) throws Exception
	{
		String tiraSQL="insert into \"PROVEEDORES\" " + 
		               "(cod_proveedor,nombre,direccion,telefono,status) " + 
		               "values ('" + 
		                proveedor.getCodProveedor() + 
		                "','" + proveedor.getNombre() + "','" + 
		                proveedor.getDireccion() + "','" + 
		                proveedor.getTelefono() + "','A')";
		
		boolean ejecutado=Conexion.ejecutarDML(tiraSQL);
		
		return ejecutado;
	}
	
	public boolean activarProveedor(Proveedor proveedor) throws Exception
	{
		String tiraSQL= "update \"PROVEEDORES\" set status='A' where cod_proveedor='" + proveedor.getCodProveedor() + "'";
        
		boolean ejecutado=Conexion.ejecutarDML(tiraSQL);
		
		return ejecutado;
	}
	
	public boolean eliminarProveedor(Proveedor proveedor) throws Exception
	{
		String tiraSQL= "update \"PROVEEDORES\" set status='E' where cod_proveedor='" + proveedor.getCodProveedor() + "'";
        
		boolean ejecutado=Conexion.ejecutarDML(tiraSQL);
		
		return ejecutado;
	}
	
	public boolean actualizarProveedor(Proveedor proveedor) throws Exception
	{
		String tiraSQL= "update \"PROVEEDORES\" set " +
	                    "nombre='" + proveedor.getNombre() + "'," +
	                    "direccion='"+ proveedor.getDireccion() + "'," + 
	                    "telefono='" + proveedor.getTelefono() +  "' " +
	                    "where cod_proveedor='" + proveedor.getCodProveedor() + "' and status!='E'";
		
		boolean ejecutado=Conexion.ejecutarDML(tiraSQL);
		
		return ejecutado;
	}
	
	public List<Proveedor> consultarProveedoresActivos() throws Exception
	{
		ArrayList<Proveedor> proveedor= new ArrayList<Proveedor>();
		
		String tiraSQL= "select * from \"PROVEEDORES\" where status='A'";
		
		ResultSet rs= Conexion.ejecutarDQL(tiraSQL);
		
		String codigo="",nombre="",direccion="",telefono="";
		
		while(rs.next())
		{ 
			codigo= rs.getString("cod_proveedor");
			nombre= rs.getString("nombre");
			direccion= rs.getString("direccion");
			telefono= rs.getString("telefono");
			
			
			proveedor.add(new Proveedor(codigo,nombre,direccion,telefono));
		}			
		
		return proveedor;
	}
	
	
	public boolean isEliminado(Proveedor proveedor) throws Exception
	{
        boolean seEncuentra= false;
		
		String tiraSQL= "select cod_proveedor,nombre,direccion,telefono" +
        " from \"PROVEEDORES\" where cod_proveedor='" + proveedor.getCodProveedor() + 
        "' and status='E'";
		
		ResultSet rs= Conexion.ejecutarDQL(tiraSQL);
		
		if (rs.next())
		{	
			seEncuentra= true;
			
			String nombre="",direccion="",telefono="";
			
			proveedor.setNombre(nombre);
			proveedor.setDireccion(direccion);
			proveedor.setTelefono(telefono);
		}
		
		return seEncuentra;
	}
	
	public boolean consultarProveedor(Proveedor proveedor) throws Exception
	{
		boolean seEncuentra= false;
		
		String tiraSQL= "select cod_proveedor,nombre,direccion,telefono" +
        " from \"PROVEEDORES\" where cod_proveedor='" + proveedor.getCodProveedor() + 
        "' and status='A'";
		
		ResultSet rs= Conexion.ejecutarDQL(tiraSQL);
		
		if (rs.next())
		{	
			seEncuentra= true;
			
		}
		
		return seEncuentra;
	}
	
	public Proveedor getProveedor(String codigo) throws Exception
	{
		Proveedor proveedor=null;
		
		String tiraSQL= "select cod_proveedor,nombre,direccion,telefono" +
        " from \"PROVEEDORES\" where cod_proveedor='" + codigo + 
        "' and status='A'";
		
		ResultSet rs= Conexion.ejecutarDQL(tiraSQL);
		
		if (rs.next())
		{	
			proveedor= new Proveedor(rs.getString("cod_proveedor"),rs.getString("nombre"),rs.getString("direccion"),rs.getString("telefono"));
			
		}
		
		return proveedor;
	}
	
	public boolean isDependiente(Proveedor proveedor) throws Exception
	{
		boolean dependiente= false;
		
		String tiraSQL= "select \"PROVEEDORES\".cod_proveedor from \"PROVEEDORES\",\"COMPRAS\" "  +
				        "where \"PROVEEDORES\".cod_proveedor='" + proveedor.getCodProveedor() + 
				        "' and \"PROVEEDORES\".cod_proveedor=\"COMPRAS\".cod_proveedor and "  +				         
				        " \"PROVEEDORES\".status='A' and \"COMPRAS\".status='A'";
		
        ResultSet rs= Conexion.ejecutarDQL(tiraSQL);
		
		if (rs.next())
		{	
			dependiente= true;
			
		}
		
		return dependiente;
	}

}

